import axios from 'axios'
import { getAccessToken } from '@/utils/auth'

// 创建axios实例
const request = axios.create({
    baseURL: 'http://localhost:8000/api',  // Django API地址
    timeout: 5000
})

// 请求拦截器
request.interceptors.request.use(
    config => {
        // 确保参数正确传递
        if (config.method === 'get' && config.params) {
            console.log('Request Config:', config)
            Object.keys(config.params).forEach(key => {
                if (config.params[key] === undefined || config.params[key] === '') {
                    delete config.params[key]
                }
            })
        }
        
        // 只有明确设置 requiresAuth: true 的请求才添加认证头
        if (config.requiresAuth === true) {
            const token = getAccessToken()
            if (token) {
                config.headers['Authorization'] = 'JWT ' + token
            }
        }
        return config
    },
    error => {
        return Promise.reject(error)
    }
)

// 响应拦截器
request.interceptors.response.use(
    response => {
        return response
    },
    error => {
        // 如果响应存在，抛出完整的错误对象
        if (error.response) {
            return Promise.reject(error)
        }
        // 其他错误情况继续抛出
        return Promise.reject(error)
    }
)

export default request
